package com.zuo_book.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zuo_book.entity.SysProjectMember;

import java.util.List;

/**
 * 项目成员服务接口
 */
public interface SysProjectMemberService {
    
    /**
     * 添加项目成员
     * @param member 成员信息
     * @return 成员ID
     */
    Long addMember(SysProjectMember member);
    
    /**
     * 更新项目成员
     * @param member 成员信息
     */
    void updateMember(SysProjectMember member);
    
    /**
     * 删除项目成员
     * @param memberId 成员ID
     */
    void deleteMember(Long memberId);
    
    /**
     * 获取项目成员详情
     * @param memberId 成员ID
     * @return 成员详情
     */
    SysProjectMember getMemberById(Long memberId);
    
    /**
     * 获取项目所有成员
     * @param projectId 项目ID
     * @return 成员列表
     */
    List<SysProjectMember> getProjectMembers(Long projectId);
    
    /**
     * 分页查询项目成员
     * @param projectId 项目ID
     * @param page 页码
     * @param size 每页大小
     * @return 成员列表
     */
    Page<SysProjectMember> listProjectMembers(Long projectId, int page, int size);
    
    /**
     * 检查用户是否是项目成员
     * @param projectId 项目ID
     * @param userId 用户ID
     * @return 是否是成员
     */
    boolean isProjectMember(Long projectId, Long userId);
    
    /**
     * 获取用户在项目中的角色
     * @param projectId 项目ID
     * @param userId 用户ID
     * @return 角色类型
     */
    Integer getMemberRole(Long projectId, Long userId);
}